跳到主要内容

Unity Cinemachine 插件的使用

Cinemachine 是什么?​

参考资料 Unity Cinemachine 学习小结

CinemaChine 是 Unity 官方推出的一个免费的 camera 资源。虽然配置起来略显复杂,但是很好的解决了原有的 camera 功能单一使用不方便的问题。

CinemaChine 提供了镜头跟随,鼠标控制镜头方向转动,镜头在轨道上移动,同时跟踪多个目标,多个镜头切换等功能。

Cinemachine 本身不替代 camera,所以,场景中必须有一个 camera。Cinemachine 需要在 camera 上添加一个【Cainemachine Brain】的组件,同时,实际镜头所在的位置是由【Virtual Camera】提供。【Cainemachine Brain】处理多个【Virtual Camera】之间的切换关系,【Virtual Camera】提供具体显示内容的来源。

基本的使用步骤​

首先在 Cinemachine 菜单里面创建一个 2D的相机,然后设置这个相机的 Follow 为跟随的角色,在这个相机对象里面的 CinemachineVirtualCamera 组件里加上拓展来控制相机的移动(在 Extension 里添加 CinemachineConfiner)

image.png

CinemachineConfiner 可以设置相机移动的边界,现在外面创建一个空对象名为:CameraBounds

给这个空对象添加一个 PolygonCollider2D组件,然后设置这个多边形碰撞器为 isTrigger(否则会导致碰撞)

把这个 CameraBounds 对象拖到 CinemachineConfiner 里面

修改这个 CameraBounds 的多边形碰撞体的大小(按着 ctrl 到边上点进左键可以删除顶点),使之为想要让相机移动的范围(相机会被锁在这个区域里)

image.png

为了方便运行时修改,这个相机有个保存运行时设置的选项,勾上就能在运行时动态保存设置的参数了 image.png

组件的设置​

Virtual Camera中最重要的属性有下面几个

  • Priority:优先级。当场景中有多个Virtual Camera的时候,数字大的优先显示。
  • Follow:设置当前Virtual Camera运动的参照目标。
  • Look At:设置当前Virtual Camera镜头对准的目标。
  • Body:设置当前Virtual Camera运动的特性。
  • Aim:设置当前Virtual Camera镜头对准的特性。

Body 控制​

Body 的控制方式官方提供了以下几种:

  • Do nothing:无控制。
  • Framing Transposer:在屏幕空间中计算相机和目标的Offset,不需要【Look At】对象。
  • Hard Lock To Target:把相机和目标的位置和朝向进行绑定,常用于第一人称模式。
  • Orbital Transposer:将镜头限制在一个圆形轨道上,用输入控制其移动。
  • Tracked Dolly:将镜头限制在自定义轨道上,根据【Follow】对象的移动来移动。
  • Transposer:基本形式,根据【Follow】对象的移动来移动。

Aim 镜头对准​

Aim 的控制方式官方提供了以下几种:

  • Do nothing:不控制。
  • Composer:跟踪一个目标。
  • Group Composer:跟踪多个目标。
  • Hard Look At:跟踪一个目标,不可调,相当于LookAt语句效果。
  • POV:用输入来控制镜头方向。
  • Same As Follow Object:跟随拍摄模式。

官方提供的 Camera​

  • FreeLookAt Camera:这个是会在目标物体周围生成三个轨道,通过输入控制镜头的移动,实现围绕目标进行观察的效果。
  • Blend List Camera:多个镜头根据时间进行切换。
  • State-Driven Camera:根据动画状态切换镜头
  • ClearShot Camera:根据跟踪对象被拍摄的效果切换镜头
  • Dolly Camera with Track:在自定义轨道上的镜头
  • Target Group Camera:同时追踪多个目标
  • Mixing Camera:在指定的两个镜头中间某个位置的镜头